(0) Obligation:

Clauses:

init_vars(E1, E2, E1init, E2init) :- ','(find_all_vars(E1, Vars1), ','(find_all_vars(E2, Vars2), ','(intersect(Vars1, Vars2, _X, Notin1, Notin2), ','(init_vars2(Notin1, E1, E1init), init_vars2(Notin2, E2, E2init))))).
find_all_vars(E, Vars) :- ','(find_all_vars2(E, Vars0), sort(Vars0, Vars)).
find_all_vars2([], []).
find_all_vars2(.(=(Vars, _Values), Es), AllVars) :- ','(append(Vars, AllVars1, AllVars), find_all_vars2(Es, AllVars1)).
init_vars2(Notin, E, Einit) :- ','(init_vars3(Notin, E, Einit0), sort(Einit0, Einit)).
init_vars3([], E, E).
init_vars3(.(Var, Vars), E, .(=(.(Var, []), .(unbound, [])), Es)) :- init_vars3(Vars, E, Es).
append([], A, A).
append(.(A, B), C, .(A, D)) :- append(B, C, D).
intersect(As, [], [], [], As) :- !.
intersect([], Bs, [], Bs, []) :- !.
intersect(.(A, As), .(B, Bs), Cs, Ds, Es) :- ;(;(->(=(A, B), ','(=(Cs, .(A, Cs2)), intersect(As, Bs, Cs2, Ds, Es))), ->(@<(A, B), ','(=(Es, .(A, Es2)), intersect(As, .(B, Bs), Cs, Ds, Es2)))), ','(=(Ds, .(B, Ds2)), intersect(.(A, As), Bs, Cs, Ds2, Es))).
get_query(E1, E2) :- ','(=(E1, .(=(X, .(a, [])), .(=(X, .(a, [])), .(=(X, .(a, [])), .(=(X, .(a, [])), []))))), ','(=(E2, .(=(Y, .(a, [])), .(=(Y, .(a, [])), .(=(Y, .(a, [])), .(=(Y, .(a, [])), []))))), ','(=(X, .(5, .(7, .(8, .(3, .(2, .(4, .(1, .(6, .(9, .(15, .(17, .(18, .(13, .(12, .(14, .(11, .(16, .(19, .(25, .(27, .(28, .(23, .(22, .(24, .(21, .(26, .(29, [])))))))))))))))))))))))))))), =(Y, .(15, .(17, .(18, .(13, .(12, .(14, .(11, .(16, .(19, .(35, .(37, .(38, .(33, .(32, .(34, .(5, .(7, .(8, .(3, .(2, .(4, .(1, .(6, .(9, .(31, .(36, .(39, []))))))))))))))))))))))))))))))).

Query: init_vars(g,g,a,a)

(1) PrologToPrologProblemTransformerProof (SOUND transformation)

Built Prolog problem from termination graph ICLP10.

(2) Obligation:

Clauses:

appendA([], X59, X59).
appendA(.(T34, T35), X76, .(T34, X77)) :- appendA(T35, X76, X77).
find_all_vars2B([], []).
find_all_vars2B(.(=(T44, T45), T46), T48) :- appendC(T44, X95, T48).
find_all_vars2B(.(=(T44, T45), T46), T48) :- ','(appendC(T44, T51, T48), find_all_vars2B(T46, T51)).
appendC([], T58, T58).
appendC(.(T65, T66), X128, .(T65, T68)) :- appendC(T66, X128, T68).
find_all_vars2D([], []).
find_all_vars2D(.(=(T25, T26), T27), X41) :- appendA(T25, X40, X41).
find_all_vars2D(.(=(T25, T26), T27), T29) :- ','(appendA(T25, T28, T29), find_all_vars2B(T27, T28)).
init_varsE(T17, T10, T13, T14) :- find_all_vars2D(T17, X23).

Query: init_varsE(g,g,a,a)

(3) PrologToPiTRSProof (SOUND transformation)

We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes:
init_varsE_in: (b,b,f,f)
find_all_vars2D_in: (b,f)
appendA_in: (b,f,f)
find_all_vars2B_in: (b,f)
appendC_in: (b,f,f)
Transforming Prolog into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:

init_varsE_in_ggaa(T17, T10, T13, T14) → U9_ggaa(T17, T10, T13, T14, find_all_vars2D_in_ga(T17, X23))
find_all_vars2D_in_ga([], []) → find_all_vars2D_out_ga([], [])
find_all_vars2D_in_ga(.(=(T25, T26), T27), X41) → U6_ga(T25, T26, T27, X41, appendA_in_gaa(T25, X40, X41))
appendA_in_gaa([], X59, X59) → appendA_out_gaa([], X59, X59)
appendA_in_gaa(.(T34, T35), X76, .(T34, X77)) → U1_gaa(T34, T35, X76, X77, appendA_in_gaa(T35, X76, X77))
U1_gaa(T34, T35, X76, X77, appendA_out_gaa(T35, X76, X77)) → appendA_out_gaa(.(T34, T35), X76, .(T34, X77))
U6_ga(T25, T26, T27, X41, appendA_out_gaa(T25, X40, X41)) → find_all_vars2D_out_ga(.(=(T25, T26), T27), X41)
find_all_vars2D_in_ga(.(=(T25, T26), T27), T29) → U7_ga(T25, T26, T27, T29, appendA_in_gaa(T25, T28, T29))
U7_ga(T25, T26, T27, T29, appendA_out_gaa(T25, T28, T29)) → U8_ga(T25, T26, T27, T29, find_all_vars2B_in_ga(T27, T28))
find_all_vars2B_in_ga([], []) → find_all_vars2B_out_ga([], [])
find_all_vars2B_in_ga(.(=(T44, T45), T46), T48) → U2_ga(T44, T45, T46, T48, appendC_in_gaa(T44, X95, T48))
appendC_in_gaa([], T58, T58) → appendC_out_gaa([], T58, T58)
appendC_in_gaa(.(T65, T66), X128, .(T65, T68)) → U5_gaa(T65, T66, X128, T68, appendC_in_gaa(T66, X128, T68))
U5_gaa(T65, T66, X128, T68, appendC_out_gaa(T66, X128, T68)) → appendC_out_gaa(.(T65, T66), X128, .(T65, T68))
U2_ga(T44, T45, T46, T48, appendC_out_gaa(T44, X95, T48)) → find_all_vars2B_out_ga(.(=(T44, T45), T46), T48)
find_all_vars2B_in_ga(.(=(T44, T45), T46), T48) → U3_ga(T44, T45, T46, T48, appendC_in_gaa(T44, T51, T48))
U3_ga(T44, T45, T46, T48, appendC_out_gaa(T44, T51, T48)) → U4_ga(T44, T45, T46, T48, find_all_vars2B_in_ga(T46, T51))
U4_ga(T44, T45, T46, T48, find_all_vars2B_out_ga(T46, T51)) → find_all_vars2B_out_ga(.(=(T44, T45), T46), T48)
U8_ga(T25, T26, T27, T29, find_all_vars2B_out_ga(T27, T28)) → find_all_vars2D_out_ga(.(=(T25, T26), T27), T29)
U9_ggaa(T17, T10, T13, T14, find_all_vars2D_out_ga(T17, X23)) → init_varsE_out_ggaa(T17, T10, T13, T14)

The argument filtering Pi contains the following mapping:
init_varsE_in_ggaa(x1, x2, x3, x4)  =  init_varsE_in_ggaa(x1, x2)
U9_ggaa(x1, x2, x3, x4, x5)  =  U9_ggaa(x5)
find_all_vars2D_in_ga(x1, x2)  =  find_all_vars2D_in_ga(x1)
[]  =  []
find_all_vars2D_out_ga(x1, x2)  =  find_all_vars2D_out_ga
.(x1, x2)  =  .(x1, x2)
=(x1, x2)  =  =(x1, x2)
U6_ga(x1, x2, x3, x4, x5)  =  U6_ga(x5)
appendA_in_gaa(x1, x2, x3)  =  appendA_in_gaa(x1)
appendA_out_gaa(x1, x2, x3)  =  appendA_out_gaa
U1_gaa(x1, x2, x3, x4, x5)  =  U1_gaa(x5)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x3, x5)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x5)
find_all_vars2B_in_ga(x1, x2)  =  find_all_vars2B_in_ga(x1)
find_all_vars2B_out_ga(x1, x2)  =  find_all_vars2B_out_ga
U2_ga(x1, x2, x3, x4, x5)  =  U2_ga(x5)
appendC_in_gaa(x1, x2, x3)  =  appendC_in_gaa(x1)
appendC_out_gaa(x1, x2, x3)  =  appendC_out_gaa
U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x5)
U3_ga(x1, x2, x3, x4, x5)  =  U3_ga(x3, x5)
U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x5)
init_varsE_out_ggaa(x1, x2, x3, x4)  =  init_varsE_out_ggaa

Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog

(4) Obligation:

Pi-finite rewrite system:
The TRS R consists of the following rules:

init_varsE_in_ggaa(T17, T10, T13, T14) → U9_ggaa(T17, T10, T13, T14, find_all_vars2D_in_ga(T17, X23))
find_all_vars2D_in_ga([], []) → find_all_vars2D_out_ga([], [])
find_all_vars2D_in_ga(.(=(T25, T26), T27), X41) → U6_ga(T25, T26, T27, X41, appendA_in_gaa(T25, X40, X41))
appendA_in_gaa([], X59, X59) → appendA_out_gaa([], X59, X59)
appendA_in_gaa(.(T34, T35), X76, .(T34, X77)) → U1_gaa(T34, T35, X76, X77, appendA_in_gaa(T35, X76, X77))
U1_gaa(T34, T35, X76, X77, appendA_out_gaa(T35, X76, X77)) → appendA_out_gaa(.(T34, T35), X76, .(T34, X77))
U6_ga(T25, T26, T27, X41, appendA_out_gaa(T25, X40, X41)) → find_all_vars2D_out_ga(.(=(T25, T26), T27), X41)
find_all_vars2D_in_ga(.(=(T25, T26), T27), T29) → U7_ga(T25, T26, T27, T29, appendA_in_gaa(T25, T28, T29))
U7_ga(T25, T26, T27, T29, appendA_out_gaa(T25, T28, T29)) → U8_ga(T25, T26, T27, T29, find_all_vars2B_in_ga(T27, T28))
find_all_vars2B_in_ga([], []) → find_all_vars2B_out_ga([], [])
find_all_vars2B_in_ga(.(=(T44, T45), T46), T48) → U2_ga(T44, T45, T46, T48, appendC_in_gaa(T44, X95, T48))
appendC_in_gaa([], T58, T58) → appendC_out_gaa([], T58, T58)
appendC_in_gaa(.(T65, T66), X128, .(T65, T68)) → U5_gaa(T65, T66, X128, T68, appendC_in_gaa(T66, X128, T68))
U5_gaa(T65, T66, X128, T68, appendC_out_gaa(T66, X128, T68)) → appendC_out_gaa(.(T65, T66), X128, .(T65, T68))
U2_ga(T44, T45, T46, T48, appendC_out_gaa(T44, X95, T48)) → find_all_vars2B_out_ga(.(=(T44, T45), T46), T48)
find_all_vars2B_in_ga(.(=(T44, T45), T46), T48) → U3_ga(T44, T45, T46, T48, appendC_in_gaa(T44, T51, T48))
U3_ga(T44, T45, T46, T48, appendC_out_gaa(T44, T51, T48)) → U4_ga(T44, T45, T46, T48, find_all_vars2B_in_ga(T46, T51))
U4_ga(T44, T45, T46, T48, find_all_vars2B_out_ga(T46, T51)) → find_all_vars2B_out_ga(.(=(T44, T45), T46), T48)
U8_ga(T25, T26, T27, T29, find_all_vars2B_out_ga(T27, T28)) → find_all_vars2D_out_ga(.(=(T25, T26), T27), T29)
U9_ggaa(T17, T10, T13, T14, find_all_vars2D_out_ga(T17, X23)) → init_varsE_out_ggaa(T17, T10, T13, T14)

The argument filtering Pi contains the following mapping:
init_varsE_in_ggaa(x1, x2, x3, x4)  =  init_varsE_in_ggaa(x1, x2)
U9_ggaa(x1, x2, x3, x4, x5)  =  U9_ggaa(x5)
find_all_vars2D_in_ga(x1, x2)  =  find_all_vars2D_in_ga(x1)
[]  =  []
find_all_vars2D_out_ga(x1, x2)  =  find_all_vars2D_out_ga
.(x1, x2)  =  .(x1, x2)
=(x1, x2)  =  =(x1, x2)
U6_ga(x1, x2, x3, x4, x5)  =  U6_ga(x5)
appendA_in_gaa(x1, x2, x3)  =  appendA_in_gaa(x1)
appendA_out_gaa(x1, x2, x3)  =  appendA_out_gaa
U1_gaa(x1, x2, x3, x4, x5)  =  U1_gaa(x5)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x3, x5)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x5)
find_all_vars2B_in_ga(x1, x2)  =  find_all_vars2B_in_ga(x1)
find_all_vars2B_out_ga(x1, x2)  =  find_all_vars2B_out_ga
U2_ga(x1, x2, x3, x4, x5)  =  U2_ga(x5)
appendC_in_gaa(x1, x2, x3)  =  appendC_in_gaa(x1)
appendC_out_gaa(x1, x2, x3)  =  appendC_out_gaa
U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x5)
U3_ga(x1, x2, x3, x4, x5)  =  U3_ga(x3, x5)
U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x5)
init_varsE_out_ggaa(x1, x2, x3, x4)  =  init_varsE_out_ggaa

(5) DependencyPairsProof (EQUIVALENT transformation)

Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem:
Pi DP problem:
The TRS P consists of the following rules:

INIT_VARSE_IN_GGAA(T17, T10, T13, T14) → U9_GGAA(T17, T10, T13, T14, find_all_vars2D_in_ga(T17, X23))
INIT_VARSE_IN_GGAA(T17, T10, T13, T14) → FIND_ALL_VARS2D_IN_GA(T17, X23)
FIND_ALL_VARS2D_IN_GA(.(=(T25, T26), T27), X41) → U6_GA(T25, T26, T27, X41, appendA_in_gaa(T25, X40, X41))
FIND_ALL_VARS2D_IN_GA(.(=(T25, T26), T27), X41) → APPENDA_IN_GAA(T25, X40, X41)
APPENDA_IN_GAA(.(T34, T35), X76, .(T34, X77)) → U1_GAA(T34, T35, X76, X77, appendA_in_gaa(T35, X76, X77))
APPENDA_IN_GAA(.(T34, T35), X76, .(T34, X77)) → APPENDA_IN_GAA(T35, X76, X77)
FIND_ALL_VARS2D_IN_GA(.(=(T25, T26), T27), T29) → U7_GA(T25, T26, T27, T29, appendA_in_gaa(T25, T28, T29))
U7_GA(T25, T26, T27, T29, appendA_out_gaa(T25, T28, T29)) → U8_GA(T25, T26, T27, T29, find_all_vars2B_in_ga(T27, T28))
U7_GA(T25, T26, T27, T29, appendA_out_gaa(T25, T28, T29)) → FIND_ALL_VARS2B_IN_GA(T27, T28)
FIND_ALL_VARS2B_IN_GA(.(=(T44, T45), T46), T48) → U2_GA(T44, T45, T46, T48, appendC_in_gaa(T44, X95, T48))
FIND_ALL_VARS2B_IN_GA(.(=(T44, T45), T46), T48) → APPENDC_IN_GAA(T44, X95, T48)
APPENDC_IN_GAA(.(T65, T66), X128, .(T65, T68)) → U5_GAA(T65, T66, X128, T68, appendC_in_gaa(T66, X128, T68))
APPENDC_IN_GAA(.(T65, T66), X128, .(T65, T68)) → APPENDC_IN_GAA(T66, X128, T68)
FIND_ALL_VARS2B_IN_GA(.(=(T44, T45), T46), T48) → U3_GA(T44, T45, T46, T48, appendC_in_gaa(T44, T51, T48))
U3_GA(T44, T45, T46, T48, appendC_out_gaa(T44, T51, T48)) → U4_GA(T44, T45, T46, T48, find_all_vars2B_in_ga(T46, T51))
U3_GA(T44, T45, T46, T48, appendC_out_gaa(T44, T51, T48)) → FIND_ALL_VARS2B_IN_GA(T46, T51)

The TRS R consists of the following rules:

init_varsE_in_ggaa(T17, T10, T13, T14) → U9_ggaa(T17, T10, T13, T14, find_all_vars2D_in_ga(T17, X23))
find_all_vars2D_in_ga([], []) → find_all_vars2D_out_ga([], [])
find_all_vars2D_in_ga(.(=(T25, T26), T27), X41) → U6_ga(T25, T26, T27, X41, appendA_in_gaa(T25, X40, X41))
appendA_in_gaa([], X59, X59) → appendA_out_gaa([], X59, X59)
appendA_in_gaa(.(T34, T35), X76, .(T34, X77)) → U1_gaa(T34, T35, X76, X77, appendA_in_gaa(T35, X76, X77))
U1_gaa(T34, T35, X76, X77, appendA_out_gaa(T35, X76, X77)) → appendA_out_gaa(.(T34, T35), X76, .(T34, X77))
U6_ga(T25, T26, T27, X41, appendA_out_gaa(T25, X40, X41)) → find_all_vars2D_out_ga(.(=(T25, T26), T27), X41)
find_all_vars2D_in_ga(.(=(T25, T26), T27), T29) → U7_ga(T25, T26, T27, T29, appendA_in_gaa(T25, T28, T29))
U7_ga(T25, T26, T27, T29, appendA_out_gaa(T25, T28, T29)) → U8_ga(T25, T26, T27, T29, find_all_vars2B_in_ga(T27, T28))
find_all_vars2B_in_ga([], []) → find_all_vars2B_out_ga([], [])
find_all_vars2B_in_ga(.(=(T44, T45), T46), T48) → U2_ga(T44, T45, T46, T48, appendC_in_gaa(T44, X95, T48))
appendC_in_gaa([], T58, T58) → appendC_out_gaa([], T58, T58)
appendC_in_gaa(.(T65, T66), X128, .(T65, T68)) → U5_gaa(T65, T66, X128, T68, appendC_in_gaa(T66, X128, T68))
U5_gaa(T65, T66, X128, T68, appendC_out_gaa(T66, X128, T68)) → appendC_out_gaa(.(T65, T66), X128, .(T65, T68))
U2_ga(T44, T45, T46, T48, appendC_out_gaa(T44, X95, T48)) → find_all_vars2B_out_ga(.(=(T44, T45), T46), T48)
find_all_vars2B_in_ga(.(=(T44, T45), T46), T48) → U3_ga(T44, T45, T46, T48, appendC_in_gaa(T44, T51, T48))
U3_ga(T44, T45, T46, T48, appendC_out_gaa(T44, T51, T48)) → U4_ga(T44, T45, T46, T48, find_all_vars2B_in_ga(T46, T51))
U4_ga(T44, T45, T46, T48, find_all_vars2B_out_ga(T46, T51)) → find_all_vars2B_out_ga(.(=(T44, T45), T46), T48)
U8_ga(T25, T26, T27, T29, find_all_vars2B_out_ga(T27, T28)) → find_all_vars2D_out_ga(.(=(T25, T26), T27), T29)
U9_ggaa(T17, T10, T13, T14, find_all_vars2D_out_ga(T17, X23)) → init_varsE_out_ggaa(T17, T10, T13, T14)

The argument filtering Pi contains the following mapping:
init_varsE_in_ggaa(x1, x2, x3, x4)  =  init_varsE_in_ggaa(x1, x2)
U9_ggaa(x1, x2, x3, x4, x5)  =  U9_ggaa(x5)
find_all_vars2D_in_ga(x1, x2)  =  find_all_vars2D_in_ga(x1)
[]  =  []
find_all_vars2D_out_ga(x1, x2)  =  find_all_vars2D_out_ga
.(x1, x2)  =  .(x1, x2)
=(x1, x2)  =  =(x1, x2)
U6_ga(x1, x2, x3, x4, x5)  =  U6_ga(x5)
appendA_in_gaa(x1, x2, x3)  =  appendA_in_gaa(x1)
appendA_out_gaa(x1, x2, x3)  =  appendA_out_gaa
U1_gaa(x1, x2, x3, x4, x5)  =  U1_gaa(x5)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x3, x5)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x5)
find_all_vars2B_in_ga(x1, x2)  =  find_all_vars2B_in_ga(x1)
find_all_vars2B_out_ga(x1, x2)  =  find_all_vars2B_out_ga
U2_ga(x1, x2, x3, x4, x5)  =  U2_ga(x5)
appendC_in_gaa(x1, x2, x3)  =  appendC_in_gaa(x1)
appendC_out_gaa(x1, x2, x3)  =  appendC_out_gaa
U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x5)
U3_ga(x1, x2, x3, x4, x5)  =  U3_ga(x3, x5)
U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x5)
init_varsE_out_ggaa(x1, x2, x3, x4)  =  init_varsE_out_ggaa
INIT_VARSE_IN_GGAA(x1, x2, x3, x4)  =  INIT_VARSE_IN_GGAA(x1, x2)
U9_GGAA(x1, x2, x3, x4, x5)  =  U9_GGAA(x5)
FIND_ALL_VARS2D_IN_GA(x1, x2)  =  FIND_ALL_VARS2D_IN_GA(x1)
U6_GA(x1, x2, x3, x4, x5)  =  U6_GA(x5)
APPENDA_IN_GAA(x1, x2, x3)  =  APPENDA_IN_GAA(x1)
U1_GAA(x1, x2, x3, x4, x5)  =  U1_GAA(x5)
U7_GA(x1, x2, x3, x4, x5)  =  U7_GA(x3, x5)
U8_GA(x1, x2, x3, x4, x5)  =  U8_GA(x5)
FIND_ALL_VARS2B_IN_GA(x1, x2)  =  FIND_ALL_VARS2B_IN_GA(x1)
U2_GA(x1, x2, x3, x4, x5)  =  U2_GA(x5)
APPENDC_IN_GAA(x1, x2, x3)  =  APPENDC_IN_GAA(x1)
U5_GAA(x1, x2, x3, x4, x5)  =  U5_GAA(x5)
U3_GA(x1, x2, x3, x4, x5)  =  U3_GA(x3, x5)
U4_GA(x1, x2, x3, x4, x5)  =  U4_GA(x5)

We have to consider all (P,R,Pi)-chains

(6) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

INIT_VARSE_IN_GGAA(T17, T10, T13, T14) → U9_GGAA(T17, T10, T13, T14, find_all_vars2D_in_ga(T17, X23))
INIT_VARSE_IN_GGAA(T17, T10, T13, T14) → FIND_ALL_VARS2D_IN_GA(T17, X23)
FIND_ALL_VARS2D_IN_GA(.(=(T25, T26), T27), X41) → U6_GA(T25, T26, T27, X41, appendA_in_gaa(T25, X40, X41))
FIND_ALL_VARS2D_IN_GA(.(=(T25, T26), T27), X41) → APPENDA_IN_GAA(T25, X40, X41)
APPENDA_IN_GAA(.(T34, T35), X76, .(T34, X77)) → U1_GAA(T34, T35, X76, X77, appendA_in_gaa(T35, X76, X77))
APPENDA_IN_GAA(.(T34, T35), X76, .(T34, X77)) → APPENDA_IN_GAA(T35, X76, X77)
FIND_ALL_VARS2D_IN_GA(.(=(T25, T26), T27), T29) → U7_GA(T25, T26, T27, T29, appendA_in_gaa(T25, T28, T29))
U7_GA(T25, T26, T27, T29, appendA_out_gaa(T25, T28, T29)) → U8_GA(T25, T26, T27, T29, find_all_vars2B_in_ga(T27, T28))
U7_GA(T25, T26, T27, T29, appendA_out_gaa(T25, T28, T29)) → FIND_ALL_VARS2B_IN_GA(T27, T28)
FIND_ALL_VARS2B_IN_GA(.(=(T44, T45), T46), T48) → U2_GA(T44, T45, T46, T48, appendC_in_gaa(T44, X95, T48))
FIND_ALL_VARS2B_IN_GA(.(=(T44, T45), T46), T48) → APPENDC_IN_GAA(T44, X95, T48)
APPENDC_IN_GAA(.(T65, T66), X128, .(T65, T68)) → U5_GAA(T65, T66, X128, T68, appendC_in_gaa(T66, X128, T68))
APPENDC_IN_GAA(.(T65, T66), X128, .(T65, T68)) → APPENDC_IN_GAA(T66, X128, T68)
FIND_ALL_VARS2B_IN_GA(.(=(T44, T45), T46), T48) → U3_GA(T44, T45, T46, T48, appendC_in_gaa(T44, T51, T48))
U3_GA(T44, T45, T46, T48, appendC_out_gaa(T44, T51, T48)) → U4_GA(T44, T45, T46, T48, find_all_vars2B_in_ga(T46, T51))
U3_GA(T44, T45, T46, T48, appendC_out_gaa(T44, T51, T48)) → FIND_ALL_VARS2B_IN_GA(T46, T51)

The TRS R consists of the following rules:

init_varsE_in_ggaa(T17, T10, T13, T14) → U9_ggaa(T17, T10, T13, T14, find_all_vars2D_in_ga(T17, X23))
find_all_vars2D_in_ga([], []) → find_all_vars2D_out_ga([], [])
find_all_vars2D_in_ga(.(=(T25, T26), T27), X41) → U6_ga(T25, T26, T27, X41, appendA_in_gaa(T25, X40, X41))
appendA_in_gaa([], X59, X59) → appendA_out_gaa([], X59, X59)
appendA_in_gaa(.(T34, T35), X76, .(T34, X77)) → U1_gaa(T34, T35, X76, X77, appendA_in_gaa(T35, X76, X77))
U1_gaa(T34, T35, X76, X77, appendA_out_gaa(T35, X76, X77)) → appendA_out_gaa(.(T34, T35), X76, .(T34, X77))
U6_ga(T25, T26, T27, X41, appendA_out_gaa(T25, X40, X41)) → find_all_vars2D_out_ga(.(=(T25, T26), T27), X41)
find_all_vars2D_in_ga(.(=(T25, T26), T27), T29) → U7_ga(T25, T26, T27, T29, appendA_in_gaa(T25, T28, T29))
U7_ga(T25, T26, T27, T29, appendA_out_gaa(T25, T28, T29)) → U8_ga(T25, T26, T27, T29, find_all_vars2B_in_ga(T27, T28))
find_all_vars2B_in_ga([], []) → find_all_vars2B_out_ga([], [])
find_all_vars2B_in_ga(.(=(T44, T45), T46), T48) → U2_ga(T44, T45, T46, T48, appendC_in_gaa(T44, X95, T48))
appendC_in_gaa([], T58, T58) → appendC_out_gaa([], T58, T58)
appendC_in_gaa(.(T65, T66), X128, .(T65, T68)) → U5_gaa(T65, T66, X128, T68, appendC_in_gaa(T66, X128, T68))
U5_gaa(T65, T66, X128, T68, appendC_out_gaa(T66, X128, T68)) → appendC_out_gaa(.(T65, T66), X128, .(T65, T68))
U2_ga(T44, T45, T46, T48, appendC_out_gaa(T44, X95, T48)) → find_all_vars2B_out_ga(.(=(T44, T45), T46), T48)
find_all_vars2B_in_ga(.(=(T44, T45), T46), T48) → U3_ga(T44, T45, T46, T48, appendC_in_gaa(T44, T51, T48))
U3_ga(T44, T45, T46, T48, appendC_out_gaa(T44, T51, T48)) → U4_ga(T44, T45, T46, T48, find_all_vars2B_in_ga(T46, T51))
U4_ga(T44, T45, T46, T48, find_all_vars2B_out_ga(T46, T51)) → find_all_vars2B_out_ga(.(=(T44, T45), T46), T48)
U8_ga(T25, T26, T27, T29, find_all_vars2B_out_ga(T27, T28)) → find_all_vars2D_out_ga(.(=(T25, T26), T27), T29)
U9_ggaa(T17, T10, T13, T14, find_all_vars2D_out_ga(T17, X23)) → init_varsE_out_ggaa(T17, T10, T13, T14)

The argument filtering Pi contains the following mapping:
init_varsE_in_ggaa(x1, x2, x3, x4)  =  init_varsE_in_ggaa(x1, x2)
U9_ggaa(x1, x2, x3, x4, x5)  =  U9_ggaa(x5)
find_all_vars2D_in_ga(x1, x2)  =  find_all_vars2D_in_ga(x1)
[]  =  []
find_all_vars2D_out_ga(x1, x2)  =  find_all_vars2D_out_ga
.(x1, x2)  =  .(x1, x2)
=(x1, x2)  =  =(x1, x2)
U6_ga(x1, x2, x3, x4, x5)  =  U6_ga(x5)
appendA_in_gaa(x1, x2, x3)  =  appendA_in_gaa(x1)
appendA_out_gaa(x1, x2, x3)  =  appendA_out_gaa
U1_gaa(x1, x2, x3, x4, x5)  =  U1_gaa(x5)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x3, x5)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x5)
find_all_vars2B_in_ga(x1, x2)  =  find_all_vars2B_in_ga(x1)
find_all_vars2B_out_ga(x1, x2)  =  find_all_vars2B_out_ga
U2_ga(x1, x2, x3, x4, x5)  =  U2_ga(x5)
appendC_in_gaa(x1, x2, x3)  =  appendC_in_gaa(x1)
appendC_out_gaa(x1, x2, x3)  =  appendC_out_gaa
U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x5)
U3_ga(x1, x2, x3, x4, x5)  =  U3_ga(x3, x5)
U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x5)
init_varsE_out_ggaa(x1, x2, x3, x4)  =  init_varsE_out_ggaa
INIT_VARSE_IN_GGAA(x1, x2, x3, x4)  =  INIT_VARSE_IN_GGAA(x1, x2)
U9_GGAA(x1, x2, x3, x4, x5)  =  U9_GGAA(x5)
FIND_ALL_VARS2D_IN_GA(x1, x2)  =  FIND_ALL_VARS2D_IN_GA(x1)
U6_GA(x1, x2, x3, x4, x5)  =  U6_GA(x5)
APPENDA_IN_GAA(x1, x2, x3)  =  APPENDA_IN_GAA(x1)
U1_GAA(x1, x2, x3, x4, x5)  =  U1_GAA(x5)
U7_GA(x1, x2, x3, x4, x5)  =  U7_GA(x3, x5)
U8_GA(x1, x2, x3, x4, x5)  =  U8_GA(x5)
FIND_ALL_VARS2B_IN_GA(x1, x2)  =  FIND_ALL_VARS2B_IN_GA(x1)
U2_GA(x1, x2, x3, x4, x5)  =  U2_GA(x5)
APPENDC_IN_GAA(x1, x2, x3)  =  APPENDC_IN_GAA(x1)
U5_GAA(x1, x2, x3, x4, x5)  =  U5_GAA(x5)
U3_GA(x1, x2, x3, x4, x5)  =  U3_GA(x3, x5)
U4_GA(x1, x2, x3, x4, x5)  =  U4_GA(x5)

We have to consider all (P,R,Pi)-chains

(7) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 12 less nodes.

(8) Complex Obligation (AND)

(9) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

APPENDC_IN_GAA(.(T65, T66), X128, .(T65, T68)) → APPENDC_IN_GAA(T66, X128, T68)

The TRS R consists of the following rules:

init_varsE_in_ggaa(T17, T10, T13, T14) → U9_ggaa(T17, T10, T13, T14, find_all_vars2D_in_ga(T17, X23))
find_all_vars2D_in_ga([], []) → find_all_vars2D_out_ga([], [])
find_all_vars2D_in_ga(.(=(T25, T26), T27), X41) → U6_ga(T25, T26, T27, X41, appendA_in_gaa(T25, X40, X41))
appendA_in_gaa([], X59, X59) → appendA_out_gaa([], X59, X59)
appendA_in_gaa(.(T34, T35), X76, .(T34, X77)) → U1_gaa(T34, T35, X76, X77, appendA_in_gaa(T35, X76, X77))
U1_gaa(T34, T35, X76, X77, appendA_out_gaa(T35, X76, X77)) → appendA_out_gaa(.(T34, T35), X76, .(T34, X77))
U6_ga(T25, T26, T27, X41, appendA_out_gaa(T25, X40, X41)) → find_all_vars2D_out_ga(.(=(T25, T26), T27), X41)
find_all_vars2D_in_ga(.(=(T25, T26), T27), T29) → U7_ga(T25, T26, T27, T29, appendA_in_gaa(T25, T28, T29))
U7_ga(T25, T26, T27, T29, appendA_out_gaa(T25, T28, T29)) → U8_ga(T25, T26, T27, T29, find_all_vars2B_in_ga(T27, T28))
find_all_vars2B_in_ga([], []) → find_all_vars2B_out_ga([], [])
find_all_vars2B_in_ga(.(=(T44, T45), T46), T48) → U2_ga(T44, T45, T46, T48, appendC_in_gaa(T44, X95, T48))
appendC_in_gaa([], T58, T58) → appendC_out_gaa([], T58, T58)
appendC_in_gaa(.(T65, T66), X128, .(T65, T68)) → U5_gaa(T65, T66, X128, T68, appendC_in_gaa(T66, X128, T68))
U5_gaa(T65, T66, X128, T68, appendC_out_gaa(T66, X128, T68)) → appendC_out_gaa(.(T65, T66), X128, .(T65, T68))
U2_ga(T44, T45, T46, T48, appendC_out_gaa(T44, X95, T48)) → find_all_vars2B_out_ga(.(=(T44, T45), T46), T48)
find_all_vars2B_in_ga(.(=(T44, T45), T46), T48) → U3_ga(T44, T45, T46, T48, appendC_in_gaa(T44, T51, T48))
U3_ga(T44, T45, T46, T48, appendC_out_gaa(T44, T51, T48)) → U4_ga(T44, T45, T46, T48, find_all_vars2B_in_ga(T46, T51))
U4_ga(T44, T45, T46, T48, find_all_vars2B_out_ga(T46, T51)) → find_all_vars2B_out_ga(.(=(T44, T45), T46), T48)
U8_ga(T25, T26, T27, T29, find_all_vars2B_out_ga(T27, T28)) → find_all_vars2D_out_ga(.(=(T25, T26), T27), T29)
U9_ggaa(T17, T10, T13, T14, find_all_vars2D_out_ga(T17, X23)) → init_varsE_out_ggaa(T17, T10, T13, T14)

The argument filtering Pi contains the following mapping:
init_varsE_in_ggaa(x1, x2, x3, x4)  =  init_varsE_in_ggaa(x1, x2)
U9_ggaa(x1, x2, x3, x4, x5)  =  U9_ggaa(x5)
find_all_vars2D_in_ga(x1, x2)  =  find_all_vars2D_in_ga(x1)
[]  =  []
find_all_vars2D_out_ga(x1, x2)  =  find_all_vars2D_out_ga
.(x1, x2)  =  .(x1, x2)
=(x1, x2)  =  =(x1, x2)
U6_ga(x1, x2, x3, x4, x5)  =  U6_ga(x5)
appendA_in_gaa(x1, x2, x3)  =  appendA_in_gaa(x1)
appendA_out_gaa(x1, x2, x3)  =  appendA_out_gaa
U1_gaa(x1, x2, x3, x4, x5)  =  U1_gaa(x5)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x3, x5)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x5)
find_all_vars2B_in_ga(x1, x2)  =  find_all_vars2B_in_ga(x1)
find_all_vars2B_out_ga(x1, x2)  =  find_all_vars2B_out_ga
U2_ga(x1, x2, x3, x4, x5)  =  U2_ga(x5)
appendC_in_gaa(x1, x2, x3)  =  appendC_in_gaa(x1)
appendC_out_gaa(x1, x2, x3)  =  appendC_out_gaa
U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x5)
U3_ga(x1, x2, x3, x4, x5)  =  U3_ga(x3, x5)
U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x5)
init_varsE_out_ggaa(x1, x2, x3, x4)  =  init_varsE_out_ggaa
APPENDC_IN_GAA(x1, x2, x3)  =  APPENDC_IN_GAA(x1)

We have to consider all (P,R,Pi)-chains

(10) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(11) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

APPENDC_IN_GAA(.(T65, T66), X128, .(T65, T68)) → APPENDC_IN_GAA(T66, X128, T68)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
APPENDC_IN_GAA(x1, x2, x3)  =  APPENDC_IN_GAA(x1)

We have to consider all (P,R,Pi)-chains

(12) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(13) Obligation:

Q DP problem:
The TRS P consists of the following rules:

APPENDC_IN_GAA(.(T65, T66)) → APPENDC_IN_GAA(T66)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(14) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • APPENDC_IN_GAA(.(T65, T66)) → APPENDC_IN_GAA(T66)
    The graph contains the following edges 1 > 1

(15) YES

(16) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

FIND_ALL_VARS2B_IN_GA(.(=(T44, T45), T46), T48) → U3_GA(T44, T45, T46, T48, appendC_in_gaa(T44, T51, T48))
U3_GA(T44, T45, T46, T48, appendC_out_gaa(T44, T51, T48)) → FIND_ALL_VARS2B_IN_GA(T46, T51)

The TRS R consists of the following rules:

init_varsE_in_ggaa(T17, T10, T13, T14) → U9_ggaa(T17, T10, T13, T14, find_all_vars2D_in_ga(T17, X23))
find_all_vars2D_in_ga([], []) → find_all_vars2D_out_ga([], [])
find_all_vars2D_in_ga(.(=(T25, T26), T27), X41) → U6_ga(T25, T26, T27, X41, appendA_in_gaa(T25, X40, X41))
appendA_in_gaa([], X59, X59) → appendA_out_gaa([], X59, X59)
appendA_in_gaa(.(T34, T35), X76, .(T34, X77)) → U1_gaa(T34, T35, X76, X77, appendA_in_gaa(T35, X76, X77))
U1_gaa(T34, T35, X76, X77, appendA_out_gaa(T35, X76, X77)) → appendA_out_gaa(.(T34, T35), X76, .(T34, X77))
U6_ga(T25, T26, T27, X41, appendA_out_gaa(T25, X40, X41)) → find_all_vars2D_out_ga(.(=(T25, T26), T27), X41)
find_all_vars2D_in_ga(.(=(T25, T26), T27), T29) → U7_ga(T25, T26, T27, T29, appendA_in_gaa(T25, T28, T29))
U7_ga(T25, T26, T27, T29, appendA_out_gaa(T25, T28, T29)) → U8_ga(T25, T26, T27, T29, find_all_vars2B_in_ga(T27, T28))
find_all_vars2B_in_ga([], []) → find_all_vars2B_out_ga([], [])
find_all_vars2B_in_ga(.(=(T44, T45), T46), T48) → U2_ga(T44, T45, T46, T48, appendC_in_gaa(T44, X95, T48))
appendC_in_gaa([], T58, T58) → appendC_out_gaa([], T58, T58)
appendC_in_gaa(.(T65, T66), X128, .(T65, T68)) → U5_gaa(T65, T66, X128, T68, appendC_in_gaa(T66, X128, T68))
U5_gaa(T65, T66, X128, T68, appendC_out_gaa(T66, X128, T68)) → appendC_out_gaa(.(T65, T66), X128, .(T65, T68))
U2_ga(T44, T45, T46, T48, appendC_out_gaa(T44, X95, T48)) → find_all_vars2B_out_ga(.(=(T44, T45), T46), T48)
find_all_vars2B_in_ga(.(=(T44, T45), T46), T48) → U3_ga(T44, T45, T46, T48, appendC_in_gaa(T44, T51, T48))
U3_ga(T44, T45, T46, T48, appendC_out_gaa(T44, T51, T48)) → U4_ga(T44, T45, T46, T48, find_all_vars2B_in_ga(T46, T51))
U4_ga(T44, T45, T46, T48, find_all_vars2B_out_ga(T46, T51)) → find_all_vars2B_out_ga(.(=(T44, T45), T46), T48)
U8_ga(T25, T26, T27, T29, find_all_vars2B_out_ga(T27, T28)) → find_all_vars2D_out_ga(.(=(T25, T26), T27), T29)
U9_ggaa(T17, T10, T13, T14, find_all_vars2D_out_ga(T17, X23)) → init_varsE_out_ggaa(T17, T10, T13, T14)

The argument filtering Pi contains the following mapping:
init_varsE_in_ggaa(x1, x2, x3, x4)  =  init_varsE_in_ggaa(x1, x2)
U9_ggaa(x1, x2, x3, x4, x5)  =  U9_ggaa(x5)
find_all_vars2D_in_ga(x1, x2)  =  find_all_vars2D_in_ga(x1)
[]  =  []
find_all_vars2D_out_ga(x1, x2)  =  find_all_vars2D_out_ga
.(x1, x2)  =  .(x1, x2)
=(x1, x2)  =  =(x1, x2)
U6_ga(x1, x2, x3, x4, x5)  =  U6_ga(x5)
appendA_in_gaa(x1, x2, x3)  =  appendA_in_gaa(x1)
appendA_out_gaa(x1, x2, x3)  =  appendA_out_gaa
U1_gaa(x1, x2, x3, x4, x5)  =  U1_gaa(x5)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x3, x5)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x5)
find_all_vars2B_in_ga(x1, x2)  =  find_all_vars2B_in_ga(x1)
find_all_vars2B_out_ga(x1, x2)  =  find_all_vars2B_out_ga
U2_ga(x1, x2, x3, x4, x5)  =  U2_ga(x5)
appendC_in_gaa(x1, x2, x3)  =  appendC_in_gaa(x1)
appendC_out_gaa(x1, x2, x3)  =  appendC_out_gaa
U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x5)
U3_ga(x1, x2, x3, x4, x5)  =  U3_ga(x3, x5)
U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x5)
init_varsE_out_ggaa(x1, x2, x3, x4)  =  init_varsE_out_ggaa
FIND_ALL_VARS2B_IN_GA(x1, x2)  =  FIND_ALL_VARS2B_IN_GA(x1)
U3_GA(x1, x2, x3, x4, x5)  =  U3_GA(x3, x5)

We have to consider all (P,R,Pi)-chains

(17) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(18) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

FIND_ALL_VARS2B_IN_GA(.(=(T44, T45), T46), T48) → U3_GA(T44, T45, T46, T48, appendC_in_gaa(T44, T51, T48))
U3_GA(T44, T45, T46, T48, appendC_out_gaa(T44, T51, T48)) → FIND_ALL_VARS2B_IN_GA(T46, T51)

The TRS R consists of the following rules:

appendC_in_gaa([], T58, T58) → appendC_out_gaa([], T58, T58)
appendC_in_gaa(.(T65, T66), X128, .(T65, T68)) → U5_gaa(T65, T66, X128, T68, appendC_in_gaa(T66, X128, T68))
U5_gaa(T65, T66, X128, T68, appendC_out_gaa(T66, X128, T68)) → appendC_out_gaa(.(T65, T66), X128, .(T65, T68))

The argument filtering Pi contains the following mapping:
[]  =  []
.(x1, x2)  =  .(x1, x2)
=(x1, x2)  =  =(x1, x2)
appendC_in_gaa(x1, x2, x3)  =  appendC_in_gaa(x1)
appendC_out_gaa(x1, x2, x3)  =  appendC_out_gaa
U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x5)
FIND_ALL_VARS2B_IN_GA(x1, x2)  =  FIND_ALL_VARS2B_IN_GA(x1)
U3_GA(x1, x2, x3, x4, x5)  =  U3_GA(x3, x5)

We have to consider all (P,R,Pi)-chains

(19) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(20) Obligation:

Q DP problem:
The TRS P consists of the following rules:

FIND_ALL_VARS2B_IN_GA(.(=(T44, T45), T46)) → U3_GA(T46, appendC_in_gaa(T44))
U3_GA(T46, appendC_out_gaa) → FIND_ALL_VARS2B_IN_GA(T46)

The TRS R consists of the following rules:

appendC_in_gaa([]) → appendC_out_gaa
appendC_in_gaa(.(T65, T66)) → U5_gaa(appendC_in_gaa(T66))
U5_gaa(appendC_out_gaa) → appendC_out_gaa

The set Q consists of the following terms:

appendC_in_gaa(x0)
U5_gaa(x0)

We have to consider all (P,Q,R)-chains.

(21) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • U3_GA(T46, appendC_out_gaa) → FIND_ALL_VARS2B_IN_GA(T46)
    The graph contains the following edges 1 >= 1

  • FIND_ALL_VARS2B_IN_GA(.(=(T44, T45), T46)) → U3_GA(T46, appendC_in_gaa(T44))
    The graph contains the following edges 1 > 1

(22) YES

(23) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

APPENDA_IN_GAA(.(T34, T35), X76, .(T34, X77)) → APPENDA_IN_GAA(T35, X76, X77)

The TRS R consists of the following rules:

init_varsE_in_ggaa(T17, T10, T13, T14) → U9_ggaa(T17, T10, T13, T14, find_all_vars2D_in_ga(T17, X23))
find_all_vars2D_in_ga([], []) → find_all_vars2D_out_ga([], [])
find_all_vars2D_in_ga(.(=(T25, T26), T27), X41) → U6_ga(T25, T26, T27, X41, appendA_in_gaa(T25, X40, X41))
appendA_in_gaa([], X59, X59) → appendA_out_gaa([], X59, X59)
appendA_in_gaa(.(T34, T35), X76, .(T34, X77)) → U1_gaa(T34, T35, X76, X77, appendA_in_gaa(T35, X76, X77))
U1_gaa(T34, T35, X76, X77, appendA_out_gaa(T35, X76, X77)) → appendA_out_gaa(.(T34, T35), X76, .(T34, X77))
U6_ga(T25, T26, T27, X41, appendA_out_gaa(T25, X40, X41)) → find_all_vars2D_out_ga(.(=(T25, T26), T27), X41)
find_all_vars2D_in_ga(.(=(T25, T26), T27), T29) → U7_ga(T25, T26, T27, T29, appendA_in_gaa(T25, T28, T29))
U7_ga(T25, T26, T27, T29, appendA_out_gaa(T25, T28, T29)) → U8_ga(T25, T26, T27, T29, find_all_vars2B_in_ga(T27, T28))
find_all_vars2B_in_ga([], []) → find_all_vars2B_out_ga([], [])
find_all_vars2B_in_ga(.(=(T44, T45), T46), T48) → U2_ga(T44, T45, T46, T48, appendC_in_gaa(T44, X95, T48))
appendC_in_gaa([], T58, T58) → appendC_out_gaa([], T58, T58)
appendC_in_gaa(.(T65, T66), X128, .(T65, T68)) → U5_gaa(T65, T66, X128, T68, appendC_in_gaa(T66, X128, T68))
U5_gaa(T65, T66, X128, T68, appendC_out_gaa(T66, X128, T68)) → appendC_out_gaa(.(T65, T66), X128, .(T65, T68))
U2_ga(T44, T45, T46, T48, appendC_out_gaa(T44, X95, T48)) → find_all_vars2B_out_ga(.(=(T44, T45), T46), T48)
find_all_vars2B_in_ga(.(=(T44, T45), T46), T48) → U3_ga(T44, T45, T46, T48, appendC_in_gaa(T44, T51, T48))
U3_ga(T44, T45, T46, T48, appendC_out_gaa(T44, T51, T48)) → U4_ga(T44, T45, T46, T48, find_all_vars2B_in_ga(T46, T51))
U4_ga(T44, T45, T46, T48, find_all_vars2B_out_ga(T46, T51)) → find_all_vars2B_out_ga(.(=(T44, T45), T46), T48)
U8_ga(T25, T26, T27, T29, find_all_vars2B_out_ga(T27, T28)) → find_all_vars2D_out_ga(.(=(T25, T26), T27), T29)
U9_ggaa(T17, T10, T13, T14, find_all_vars2D_out_ga(T17, X23)) → init_varsE_out_ggaa(T17, T10, T13, T14)

The argument filtering Pi contains the following mapping:
init_varsE_in_ggaa(x1, x2, x3, x4)  =  init_varsE_in_ggaa(x1, x2)
U9_ggaa(x1, x2, x3, x4, x5)  =  U9_ggaa(x5)
find_all_vars2D_in_ga(x1, x2)  =  find_all_vars2D_in_ga(x1)
[]  =  []
find_all_vars2D_out_ga(x1, x2)  =  find_all_vars2D_out_ga
.(x1, x2)  =  .(x1, x2)
=(x1, x2)  =  =(x1, x2)
U6_ga(x1, x2, x3, x4, x5)  =  U6_ga(x5)
appendA_in_gaa(x1, x2, x3)  =  appendA_in_gaa(x1)
appendA_out_gaa(x1, x2, x3)  =  appendA_out_gaa
U1_gaa(x1, x2, x3, x4, x5)  =  U1_gaa(x5)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x3, x5)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x5)
find_all_vars2B_in_ga(x1, x2)  =  find_all_vars2B_in_ga(x1)
find_all_vars2B_out_ga(x1, x2)  =  find_all_vars2B_out_ga
U2_ga(x1, x2, x3, x4, x5)  =  U2_ga(x5)
appendC_in_gaa(x1, x2, x3)  =  appendC_in_gaa(x1)
appendC_out_gaa(x1, x2, x3)  =  appendC_out_gaa
U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x5)
U3_ga(x1, x2, x3, x4, x5)  =  U3_ga(x3, x5)
U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x5)
init_varsE_out_ggaa(x1, x2, x3, x4)  =  init_varsE_out_ggaa
APPENDA_IN_GAA(x1, x2, x3)  =  APPENDA_IN_GAA(x1)

We have to consider all (P,R,Pi)-chains

(24) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(25) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

APPENDA_IN_GAA(.(T34, T35), X76, .(T34, X77)) → APPENDA_IN_GAA(T35, X76, X77)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
APPENDA_IN_GAA(x1, x2, x3)  =  APPENDA_IN_GAA(x1)

We have to consider all (P,R,Pi)-chains

(26) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(27) Obligation:

Q DP problem:
The TRS P consists of the following rules:

APPENDA_IN_GAA(.(T34, T35)) → APPENDA_IN_GAA(T35)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(28) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • APPENDA_IN_GAA(.(T34, T35)) → APPENDA_IN_GAA(T35)
    The graph contains the following edges 1 > 1

(29) YES